package com.ruiysoft.crm.model.dto;


import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;

/**
 * 预约客户
 *
 * @author fanyl
 * @date 2019-04-14 12:55:15
 */
@ApiModel
@Data
@Accessors(chain = true)
public class BizBookingClientDTO {

    /**
     * 主键
     */
    private Integer id;

    /**
     * 预约表ID
     */
    private Integer reserveId;
    /**
     * 车牌号
     */
    @ApiModelProperty(value = "车牌号")
    private String carNo;
    /**
     * 车主姓名
     */
    @ApiModelProperty(value = "车主姓名")
    private String carOwner;
    /**
     * 联系电话
     */
    @ApiModelProperty(value = "联系电话")
    private String mobile;
    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    private String note;

    /**
     * 业务员Id
     */
    @ApiModelProperty(value = "业务员Id")
    private Integer userId;
    /**
     * 外呼次数
     */
    @ApiModelProperty(value = "外呼次数")
    private Integer callOutCount;
    /**
     * 客户级别 A B C
     */
    @ApiModelProperty(value = "客户级别")
    private String clientLevel;
    /**
     * 跟进状态
     * 0 失败
     * 2 已联系
     * 3 第一次无人接听
     * 4 第二次无人接听
     * 5 第三次无人接听
     * 6 第四次无人接听
     */
    @ApiModelProperty(value = "跟进状态")
    private String followStatus;
    /**
     * 预约时间
     */
    @ApiModelProperty(value = "预约时间")
    //@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
   // private LocalDateTime bookingTime;
    private String bookingTime;
    /**
     * 最后一次通话时间
     */
    @ApiModelProperty(value = "最后一次通话时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime lastCallTime;
    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    private String remark;

    /**
     * 车架号
     */
    @ApiModelProperty(value = "车架号")
    private String vehicleNo;
    /**
     * 发动机号
     */
    @ApiModelProperty(value = "发动机号")
    private String engineNumber;
    /**
     * 初登日期
     */
    @ApiModelProperty(value = "初登日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime firstRegistrationDate;
    /**
     * 车辆类型:营运货车,家庭自用客车,需要有字典表
     */
    @ApiModelProperty(value = "车辆类型")
    private String vehicleType;
    /**
     * 厂牌型号
     */
    @ApiModelProperty(value = "厂牌型号")
    private String factoryPlateModel;
    /**
     * 厂牌型号
     */
    @ApiModelProperty(value = "厂牌型号")
    private String factory_plate_model;
    /**
     * 营业性质:营运非营运,营业客车
     */
    @ApiModelProperty(value = "营业性质")
    private String vehicleUsage;
    /**
     * 新车购置价
     */
    @ApiModelProperty(value = "新车购置价")
    private BigDecimal price;
    /**
     * 排量
     */
    @ApiModelProperty(value = "排量")
    private Float displacement;
    /**
     * 座位数
     */
    @ApiModelProperty(value = "座位数")
    private Integer seating;
    /**
     * 客户Id
     */
    @ApiModelProperty(value = "客户Id")
    private Integer clientId;

    /**
     * 整备质量
     */
    @ApiModelProperty(value = "整备质量")
    private BigDecimal curbWeight;
    /**
     * 总质量
     */
    @ApiModelProperty(value = "总质量")
    private BigDecimal grossVehicleWeight;

    @ApiModelProperty(value = "预约状态")
    private String bookingStatus;

    /**
     * 客户姓名
     */
    @TableField(value = "client_name", exist = true)
    private String clientName;
    /**
     * 客户生日
     */
    @TableField(value = "birthday", exist = true)
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate birthday;
    /**
     * 客户邮箱
     */
    @TableField(value = "email", exist = true)
    private String email;
    /**
     * 客户证件号码
     */
    @TableField(value = "id_no", exist = true)
    private String idNo;
    /**
     * 客户性别
     */
    @TableField(value = "sex", exist = true)
    private String sex;
    /**
     * 客户手机号
     */
    @TableField(value = "mobile_phone", exist = true)
    private String mobilePhone;
    /**
     * 客户地址
     */
    @TableField(value = "address", exist = true)
    private String address;
    /**
     * 联系人
     */
    @TableField(value = "contacts", exist = true)
    private String contacts;

    /**
     * 被保险人
     */
    @TableField(value = "insured", exist = true)
    private String insured;
    /**
     * 被保人身份证号
     */
    @TableField(value = "insured_id_card", exist = true)
    private String insuredIdCard;
    /**
     * 客户备用电话
     */
    @TableField(value = "standby_mobile", exist = true)
    private String standbyMobile;
    /**
     * 客户类别
     */
    @TableField(value = "client_type", exist = true)
    private String clientType;
    /**
     * 保险单出单日
     */
    @TableField(value = "create_policy_date", exist = true)
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate createPolicyDate;

    /**
     * 机构Code
     */
    @TableField(value = "org_code", exist = true)
    private String orgCode;

    /**
     * 保险止期
     */
    @TableField(value = "insEndDate", exist = false)
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate insEndDate;
    /**
     * 分配人员
     */
    @TableField(value = "user_name", exist = true)
    private String userName;

    /**
     * 机构编码
     */
    @TableField(value = "enterprise_id", exist = true)
    private String enterpriseId;
    /**
     * 创建时间
     */
    @TableField(value = "create_date", exist = true)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createDate;
    /**
     * 修改时间
     */
    @TableField(value = "modification_date", exist = true)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime modificationDate;

    /**
     * 客户跟进是否成功 1：成功  2：失败
     */
    @TableField(value = "success", exist = true)
    private String success;

    /**
     * 交强险止期
     */
    @TableField(value = "CLIVTAEndDate", exist = true)
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate clivtaEndDate;


    /**
     * 商业险止期
     */
    @TableField(value = "VIEndDate", exist = true)
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate viEndDate;

    @TableField(exist = false)
    private String label;
}